It is well understood in the video art that adaptations of sampled digital data, such as resizing a pixelated image, may be accomplished using resampling techniques. In the resized image example, an image will have already been digitally sampled, and interpolation or decimation of the samples may be required to make the image larger or smaller respectively. Generation of new samples according to the required interpolation or decimation is normally enabled by circuitry controlling a resampling filter. The resampling filter then analyzes the existing sampling data and creates new samples from characteristics of the existing samples according to design functionality of the particular filter.
The present invention is directed to control circuitry of the resampling filter. Conventional techniques in controlling a resampling filter use logic whereby an instruction to generate a new sample is created according to a step, which is a function of the interval of the existing samples. In the application of resizing a video image, it will be understood that the step may be a function of the scale factor by which the image is to be enlarged or reduced.
Control logic is known where input counters increment numerically the existing samples as they are encountered in the incoming data stream, as "source" counters (referring to an eventual "source" signal for the resampling filter) increment values of the chosen step in partial synchrony with the input counters. Between each increment of the input counter, the input counter is compared with the integer value of the source counter, and if greater than or equal to the integer value of the source counter, the circuit will (1) send an instruction to the resampling filter to generate a sample, and (2) increment the source counter by one step. In decimation, the input counter will then also be incremented by one. In interpolation, however, the input counter may or may not then be incremented, depending on whether the step value is sufficiently large to cause another data sample to be encountered.
If, on the other hand, the integer value of the source counter is determined to be less than the input counter, then the circuit will not send an instruction to the resampling filter and instead will simply allow the cycle to repeat by adding one more to the input counter. This existing art is illustrated in FIG. 3, and will be discussed in greater detail below.
It is a necessary evil of this type of resampling control to have to analyze the entire length of the incoming data stream before the resampling exercise can be completed, (and, in the application suggested above, the video image can be resized). This means that all of the existing input samples must be counted before the job is done. And, according to the conventional technique described above, this means that the input and source integer counters may have to increment to high values. This creates problems in hardware design and performance. First, registers must be allocated for the input counter and the integer value of the source counter to receive count values of considerable size. This represents potentially inefficient use of hardware, and also requires that a fixed maximum register size must be pre-designed. Second, considerable processing power must be allocated incrementing these registers to high values as the incoming data stream is analyzed. This draw on processing power may take capacity away from other functions as well as potentially slowing response time. With regard to processing power, it will be understood that when counting, a savings of only one or two bits may result in exponential decrease in processing power requirements.
Accordingly, a need exists for resampling filter control circuitry that will resample an incoming data stream without incrementing counters to high values. Specifically, it would be highly desirable to control the resampling of a given data stream by counting to lower values, especially if the limits of such control were more flexible, and not directly dependent on some pre-designed maximum data sample count.